package com.sgj.vo;

import lombok.Data;

/**
 * 微信支付回调参数(native  v3)
 * @Author: Guoji Shen
 * @Date: 2021/11/27 8:19
 */
@Data
public class WXCallbackVo {

    /**
     * 通知唯一ID
     */
    private String id;

    /**
     * 通知创建的时间，遵循rfc3339标准格式，格式为YYYY-MM-DDTHH:mm:ss+TIMEZONE，YYYY-MM-DD表示年月日，
     * T出现在字符串中，表示time元素的开头，HH:mm:ss.表示时分秒，TIMEZONE表示时区（+08:00表示东八区时间，领先UTC 8小时，即北京时间）。
     * 例如：2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒。
     */
    private String create_time;

    /**
     * 通知的类型，支付成功通知的类型为TRANSACTION.SUCCESS
     */
    private String event_type;

    /**
     * 通知的资源数据类型，支付成功通知为encrypt-resource
     */
    private String resource_type;

    /**
     * 通知资源数据
     */
    private Resource resource;

    /**
     * 回调摘要
     */
    private String summary;

    @Data
    public static class Resource {

        /**
         * 加密算法类型
         * 对开启结果数据进行加密的加密算法，目前只支持AEAD_AES_256_GCM
         */
        private String algorithm;

        /**
         * 数据密文
         * Base64编码后的开启/停用结果数据密文
         */
        private String ciphertext;

        /**
         * 附加数据
         */
        private String associated_data;

        /**
         * 原始回调类型，为transaction
         */
        private String original_type;

        /**
         * 随机串
         * 加密使用的随机串
         */
        private String nonce;
    }
}